1 . Field
Embodiments discussed herein relate to a method of programming a flash memory.
2 . Description of the Related Art
Related embedded computing platforms used removable nonvolatile memory. If the nonvolatile memory required a software upgrade, a new nonvolatile memory device was programmed with the desired upgrade by an outside party and delivered to the end-user; the original memory was removed, and the new device was installed.
As microcircuit technology advanced, more microcircuit components were installed in the same area of the Printed Wiring Board (PWB). As a result, PWB space was at a premium. In order to cope with space limitations, designers started using permanently installed, or “non-removable”, components in the PWB. The term “non-removable” refers to memories that are designed to be permanently attached to the PWB. Although referred to as “non-removable,” these memories may of course be removed, if necessary. However, the removal process is quite cumbersome as compared to “removable” memories. Using this removal process and the associated reinstallation process in the field in order to upgrade software is not practical. Currently, removable flash memory is no longer commonly used.
Using non-removable flash memory makes software upgrades more difficult. However, a software upgrade process that does not require replacing nonvolatile memory on a PWB can often be performed without removing the PWB from its electrical system. The original software upgrade process with removable nonvolatile memory required removing the PWB from the system in order to replace the nonvolatile memory. Removing a PWB from its electrical system could result in electrical discontinuity. A break in electrical continuity can cause incorrect operation of the system. When a PWB is removed from its electrical system, multiple tests are required to ensure that electrical continuity has been restored when the PWB is put back. Performing the electrical continuity test takes a long time, especially if the PWB is part of a safety-critical system. For such a system, rigorous testing is required to ensure that electrical continuity was restored and to make sure that the correct software was installed in the flash memory.
Regarding the programming methods themselves, other methods typically do not partition memory into multiple groups. As a result, there is only one level of write-protection. By having only one level of write-protection, during programming, all nonvolatile memory is vulnerable to unintended changes. Another problem is that other methods used special-purpose equipment for programming. As a result, an end-user could not program memory on-site, and had to rely on outside vendors.
FIG. 1A is an illustration of a related embedded computing platform 102. The embedded computing platform 102 includes a removable flash memory 104 and a PWB 103. An outside vendor programs a new removable flash module 105 with a new software version,
FIG. 1B is an illustration of the flash memory during programming 104. The PWB 103 is taken out of the embedded computing platform 102, and the original flash memory 104 is replaced with the new removable flash memory 105.
FIG. 1C is an illustration of testing embedded computing platform 102 after putting back the PWB 103 containing the new flash memory 105. After putting the PWB 103 containing the new flash memory 105 back into the embedded computing platform 102, an electrical continuity test checks if the PWB 103 has been reinstalled correctly. Another set of tests are performed on the flash memory 104 to verify that the software was installed properly.
In light of the foregoing, there is a need for a method of programming “non-removable” flash memory that does not require removal of the flash memory.